node {
  name: "a"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 1
          }
        }
        float_val: 6
      }
    }
  }
}
node {
  name: "Const"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 1
          }
        }
        float_val: 7
      }
    }
  }
}
node {
  name: "b"
  op: "VariableV2"
  attr {
    key: "container"
    value {
      s: ""
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: 1
        }
        dim {
          size: 1
        }
      }
    }
  }
  attr {
    key: "shared_name"
    value {
      s: ""
    }
  }
}
node {
  name: "b/Assign"
  op: "Assign"
  input: "b:0"
  input: "Const:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@b"
      }
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "b/read"
  op: "Identity"
  input: "b:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@b"
      }
    }
  }
}
node {
  name: "init"
  op: "NoOp"
  input: "^b/Assign"
}
node {
  name: "save/filename/input"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: "model"
      }
    }
  }
}
node {
  name: "save/filename"
  op: "PlaceholderWithDefault"
  input: "save/filename/input:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
}
node {
  name: "save/Const"
  op: "PlaceholderWithDefault"
  input: "save/filename:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
}
node {
  name: "save/SaveV2/tensor_names"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 5
          }
        }
        tensor_content: "\001\016\016\023\023ba/Min/Variablea/Max/Variableb/read/Min/Variableb/read/Max/Variable"
      }
    }
  }
}
node {
  name: "save/SaveV2/shape_and_slices"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 5
          }
        }
        tensor_content: "\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "save/RestoreV2/tensor_names"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: "b"
      }
    }
  }
}
node {
  name: "save/RestoreV2/shape_and_slices"
  op: "Const"
  device: "/device:CPU:0"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: ""
      }
    }
  }
}
node {
  name: "save/RestoreV2"
  op: "RestoreV2"
  input: "save/Const:0"
  input: "save/RestoreV2/tensor_names:0"
  input: "save/RestoreV2/shape_and_slices:0"
  device: "/device:CPU:0"
  attr {
    key: "dtypes"
    value {
      list {
        type: DT_FLOAT
      }
    }
  }
}
node {
  name: "save/Assign"
  op: "Assign"
  input: "b:0"
  input: "save/RestoreV2:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@b"
      }
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "a/Decay"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
        }
        float_val: 0.999
      }
    }
  }
}
node {
  name: "a/ReductionAxes/RangeStart"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "a/ReductionAxes/RangeDelta"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "a/ReductionAxes/InputRank"
  op: "Rank"
  input: "a:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/ReductionAxes/ReductionAxes"
  op: "Range"
  input: "a/ReductionAxes/RangeStart:0"
  input: "a/ReductionAxes/InputRank:0"
  input: "a/ReductionAxes/RangeDelta:0"
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "a/Min"
  op: "Min"
  input: "a:0"
  input: "a/ReductionAxes/ReductionAxes:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "a/Max"
  op: "Max"
  input: "a:0"
  input: "a/ReductionAxes/ReductionAxes:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "a/Min/Variable"
  op: "VariableV2"
  attr {
    key: "container"
    value {
      s: ""
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
  attr {
    key: "shared_name"
    value {
      s: ""
    }
  }
}
node {
  name: "a/Min/IsInitialized"
  op: "IsVariableInitialized"
  input: "a/Min/Variable:0"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Min/Switch"
  op: "Switch"
  input: "a/Min:0"
  input: "a/Min/IsInitialized:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Min/EMA/OneConst"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
        }
        float_val: 1
      }
    }
  }
}
node {
  name: "a/Min/EMA/DecayComplement"
  op: "Sub"
  input: "a/Min/EMA/OneConst:0"
  input: "a/Decay:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Min/EMA/ValueDiff"
  op: "Sub"
  input: "a/Min/Variable:0"
  input: "a/Min/Switch:1"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Min/EMA/UpdateValue"
  op: "Mul"
  input: "a/Min/EMA/ValueDiff:0"
  input: "a/Min/EMA/DecayComplement:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Min/EMA/EMAValue"
  op: "Sub"
  input: "a/Min/Variable:0"
  input: "a/Min/EMA/UpdateValue:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Min/Merge"
  op: "Merge"
  input: "a/Min/Switch:0"
  input: "a/Min/EMA/EMAValue:0"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Min/AssignValue"
  op: "Assign"
  input: "a/Min/Variable:0"
  input: "a/Min/Merge:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "a/Max/Variable"
  op: "VariableV2"
  attr {
    key: "container"
    value {
      s: ""
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
  attr {
    key: "shared_name"
    value {
      s: ""
    }
  }
}
node {
  name: "a/Max/IsInitialized"
  op: "IsVariableInitialized"
  input: "a/Max/Variable:0"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Max/Switch"
  op: "Switch"
  input: "a/Max:0"
  input: "a/Max/IsInitialized:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Max/EMA/OneConst"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
        }
        float_val: 1
      }
    }
  }
}
node {
  name: "a/Max/EMA/DecayComplement"
  op: "Sub"
  input: "a/Max/EMA/OneConst:0"
  input: "a/Decay:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Max/EMA/ValueDiff"
  op: "Sub"
  input: "a/Max/Variable:0"
  input: "a/Max/Switch:1"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Max/EMA/UpdateValue"
  op: "Mul"
  input: "a/Max/EMA/ValueDiff:0"
  input: "a/Max/EMA/DecayComplement:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Max/EMA/EMAValue"
  op: "Sub"
  input: "a/Max/Variable:0"
  input: "a/Max/EMA/UpdateValue:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Max/Merge"
  op: "Merge"
  input: "a/Max/Switch:0"
  input: "a/Max/EMA/EMAValue:0"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "a/Max/AssignValue"
  op: "Assign"
  input: "a/Max/Variable:0"
  input: "a/Max/Merge:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "a/QuantizeAndDequantizeV2"
  op: "QuantizeAndDequantizeV2"
  input: "a:0"
  input: "a/Min/AssignValue:0"
  input: "a/Max/AssignValue:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "axis"
    value {
      i: -1
    }
  }
  attr {
    key: "narrow_range"
    value {
      b: false
    }
  }
  attr {
    key: "num_bits"
    value {
      i: 8
    }
  }
  attr {
    key: "range_given"
    value {
      b: true
    }
  }
  attr {
    key: "round_mode"
    value {
      s: "HALF_TO_EVEN"
    }
  }
  attr {
    key: "signed_input"
    value {
      b: true
    }
  }
}
node {
  name: "b/read/Decay"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
        }
        float_val: 0.999
      }
    }
  }
}
node {
  name: "b/read/ReductionAxes/RangeStart"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "b/read/ReductionAxes/RangeDelta"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "b/read/ReductionAxes/InputRank"
  op: "Rank"
  input: "b/read:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/ReductionAxes/ReductionAxes"
  op: "Range"
  input: "b/read/ReductionAxes/RangeStart:0"
  input: "b/read/ReductionAxes/InputRank:0"
  input: "b/read/ReductionAxes/RangeDelta:0"
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "b/read/Min"
  op: "Min"
  input: "b/read:0"
  input: "b/read/ReductionAxes/ReductionAxes:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "b/read/Max"
  op: "Max"
  input: "b/read:0"
  input: "b/read/ReductionAxes/ReductionAxes:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "b/read/Min/Variable"
  op: "VariableV2"
  attr {
    key: "container"
    value {
      s: ""
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
  attr {
    key: "shared_name"
    value {
      s: ""
    }
  }
}
node {
  name: "b/read/Min/IsInitialized"
  op: "IsVariableInitialized"
  input: "b/read/Min/Variable:0"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Min/Switch"
  op: "Switch"
  input: "b/read/Min:0"
  input: "b/read/Min/IsInitialized:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Min/EMA/OneConst"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
        }
        float_val: 1
      }
    }
  }
}
node {
  name: "b/read/Min/EMA/DecayComplement"
  op: "Sub"
  input: "b/read/Min/EMA/OneConst:0"
  input: "b/read/Decay:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Min/EMA/ValueDiff"
  op: "Sub"
  input: "b/read/Min/Variable:0"
  input: "b/read/Min/Switch:1"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Min/EMA/UpdateValue"
  op: "Mul"
  input: "b/read/Min/EMA/ValueDiff:0"
  input: "b/read/Min/EMA/DecayComplement:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Min/EMA/EMAValue"
  op: "Sub"
  input: "b/read/Min/Variable:0"
  input: "b/read/Min/EMA/UpdateValue:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Min/Merge"
  op: "Merge"
  input: "b/read/Min/Switch:0"
  input: "b/read/Min/EMA/EMAValue:0"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Min/AssignValue"
  op: "Assign"
  input: "b/read/Min/Variable:0"
  input: "b/read/Min/Merge:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "b/read/Max/Variable"
  op: "VariableV2"
  attr {
    key: "container"
    value {
      s: ""
    }
  }
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "shape"
    value {
      shape {
      }
    }
  }
  attr {
    key: "shared_name"
    value {
      s: ""
    }
  }
}
node {
  name: "b/read/Max/IsInitialized"
  op: "IsVariableInitialized"
  input: "b/read/Max/Variable:0"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Max/Switch"
  op: "Switch"
  input: "b/read/Max:0"
  input: "b/read/Max/IsInitialized:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Max/EMA/OneConst"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
        }
        float_val: 1
      }
    }
  }
}
node {
  name: "b/read/Max/EMA/DecayComplement"
  op: "Sub"
  input: "b/read/Max/EMA/OneConst:0"
  input: "b/read/Decay:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Max/EMA/ValueDiff"
  op: "Sub"
  input: "b/read/Max/Variable:0"
  input: "b/read/Max/Switch:1"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Max/EMA/UpdateValue"
  op: "Mul"
  input: "b/read/Max/EMA/ValueDiff:0"
  input: "b/read/Max/EMA/DecayComplement:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Max/EMA/EMAValue"
  op: "Sub"
  input: "b/read/Max/Variable:0"
  input: "b/read/Max/EMA/UpdateValue:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Max/Merge"
  op: "Merge"
  input: "b/read/Max/Switch:0"
  input: "b/read/Max/EMA/EMAValue:0"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
}
node {
  name: "b/read/Max/AssignValue"
  op: "Assign"
  input: "b/read/Max/Variable:0"
  input: "b/read/Max/Merge:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "b/read/QuantizeAndDequantizeV2"
  op: "QuantizeAndDequantizeV2"
  input: "b/read:0"
  input: "b/read/Min/AssignValue:0"
  input: "b/read/Max/AssignValue:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "axis"
    value {
      i: -1
    }
  }
  attr {
    key: "narrow_range"
    value {
      b: false
    }
  }
  attr {
    key: "num_bits"
    value {
      i: 8
    }
  }
  attr {
    key: "range_given"
    value {
      b: true
    }
  }
  attr {
    key: "round_mode"
    value {
      s: "HALF_TO_EVEN"
    }
  }
  attr {
    key: "signed_input"
    value {
      b: true
    }
  }
}
node {
  name: "matmul"
  op: "MatMul"
  input: "a/QuantizeAndDequantizeV2:0"
  input: "b/read/QuantizeAndDequantizeV2:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "save/RestoreV2/_0_qt/tensor_names"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: "a/Min/Variable"
      }
    }
  }
}
node {
  name: "save/RestoreV2/_0_qt/shape_and_slices"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: ""
      }
    }
  }
}
node {
  name: "save/RestoreV2/_0_qt"
  op: "RestoreV2"
  input: "save/Const:0"
  input: "save/RestoreV2/_0_qt/tensor_names:0"
  input: "save/RestoreV2/_0_qt/shape_and_slices:0"
  attr {
    key: "dtypes"
    value {
      list {
        type: DT_FLOAT
      }
    }
  }
}
node {
  name: "save/Assign/_1_qt"
  op: "Assign"
  input: "a/Min/Variable:0"
  input: "save/RestoreV2/_0_qt:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "save/RestoreV2/_2_qt/tensor_names"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: "a/Max/Variable"
      }
    }
  }
}
node {
  name: "save/RestoreV2/_2_qt/shape_and_slices"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: ""
      }
    }
  }
}
node {
  name: "save/RestoreV2/_2_qt"
  op: "RestoreV2"
  input: "save/Const:0"
  input: "save/RestoreV2/_2_qt/tensor_names:0"
  input: "save/RestoreV2/_2_qt/shape_and_slices:0"
  attr {
    key: "dtypes"
    value {
      list {
        type: DT_FLOAT
      }
    }
  }
}
node {
  name: "save/Assign/_3_qt"
  op: "Assign"
  input: "a/Max/Variable:0"
  input: "save/RestoreV2/_2_qt:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "save/RestoreV2/_4_qt/tensor_names"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: "b/read/Min/Variable"
      }
    }
  }
}
node {
  name: "save/RestoreV2/_4_qt/shape_and_slices"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: ""
      }
    }
  }
}
node {
  name: "save/RestoreV2/_4_qt"
  op: "RestoreV2"
  input: "save/Const:0"
  input: "save/RestoreV2/_4_qt/tensor_names:0"
  input: "save/RestoreV2/_4_qt/shape_and_slices:0"
  attr {
    key: "dtypes"
    value {
      list {
        type: DT_FLOAT
      }
    }
  }
}
node {
  name: "save/Assign/_5_qt"
  op: "Assign"
  input: "b/read/Min/Variable:0"
  input: "save/RestoreV2/_4_qt:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "save/RestoreV2/_6_qt/tensor_names"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: "b/read/Max/Variable"
      }
    }
  }
}
node {
  name: "save/RestoreV2/_6_qt/shape_and_slices"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
          dim {
            size: 1
          }
        }
        string_val: ""
      }
    }
  }
}
node {
  name: "save/RestoreV2/_6_qt"
  op: "RestoreV2"
  input: "save/Const:0"
  input: "save/RestoreV2/_6_qt/tensor_names:0"
  input: "save/RestoreV2/_6_qt/shape_and_slices:0"
  attr {
    key: "dtypes"
    value {
      list {
        type: DT_FLOAT
      }
    }
  }
}
node {
  name: "save/Assign/_7_qt"
  op: "Assign"
  input: "b/read/Max/Variable:0"
  input: "save/RestoreV2/_6_qt:0"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "use_locking"
    value {
      b: true
    }
  }
  attr {
    key: "validate_shape"
    value {
      b: true
    }
  }
}
node {
  name: "save/restore_all"
  op: "NoOp"
  input: "^save/Assign"
  input: "^save/Assign/_1_qt"
  input: "^save/Assign/_3_qt"
  input: "^save/Assign/_5_qt"
  input: "^save/Assign/_7_qt"
}
node {
  name: "save/SaveV2"
  op: "SaveV2"
  input: "save/Const:0"
  input: "save/SaveV2/tensor_names:0"
  input: "save/SaveV2/shape_and_slices:0"
  input: "b:0"
  input: "a/Min/Variable:0"
  input: "a/Max/Variable:0"
  input: "b/read/Min/Variable:0"
  input: "b/read/Max/Variable:0"
  attr {
    key: "dtypes"
    value {
      list {
        type: DT_FLOAT
        type: DT_FLOAT
        type: DT_FLOAT
        type: DT_FLOAT
        type: DT_FLOAT
      }
    }
  }
}
node {
  name: "save/control_dependency"
  op: "Identity"
  input: "save/Const:0"
  input: "^save/SaveV2"
  attr {
    key: "T"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@save/Const"
      }
    }
  }
}
library {
}
versions {
  producer: 725
}
